Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

119
Views
JS, cómo acceder a "esto" en una función de reemplazo en una llamada a String.prototype.replace()

Tengo este fragmento de código:

 class MyClass { constructor(text, pattern) { this.text = text; this.pattern = pattern; } run() { return this.text.replace(/(\d)/, this.replacer) } replacer(match, timeString, offset, string) { return this.pattern; } }

Es un ejemplo simplificado de mi código real.

Cuando corro:

 var v = new MyClass("text 1 2", "X"); v.run();

Veo el error:

TypeError no capturado: no se pueden leer las propiedades de undefined (leyendo 'patrón')

¿Cómo puede acceder a this en esta función de reemplazo?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Use Function#bind para establecer this valor, o use una función de flecha que llame a this.replacer como devolución de llamada.

 class MyClass { constructor(text, pattern) { this.text = text; this.pattern = pattern; } run() { return this.text.replace(/(\d)/, this.replacer.bind(this)); // or return this.text.replace(/(\d)/, (...args) => this.replacer(...args)); } replacer(match, timeString, offset, string) { return this.pattern; } } var v = new MyClass("text 1 2", "X") console.log(v.run());

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!